

#if 0

#include "Grammar.h"

#define TEST_E	0x00100001
#define TEST_T	0x00100002
#define TEST_F	0x00100003
#define TEST_EP 0x00100004
#define TEST_TP 0x00100005

#define TEST_PLUS	0x00010001
#define TEST_MULT	0x00010002
#define TEST_LP	    0x00010003
#define TEST_RP	    0x00010004
#define TEST_I      0x00010005

REGISTER_SPETIAL_TOKEN("+",TEST_PLUS);
REGISTER_SPETIAL_TOKEN("*",TEST_MULT);
REGISTER_SPETIAL_TOKEN("(",TEST_LP);
REGISTER_SPETIAL_TOKEN(")",TEST_RP);
REGISTER_SPETIAL_TOKEN("i",TEST_I);

REGISTER_NONTERMINATE_TOKEN("E",TEST_E);
REGISTER_NONTERMINATE_TOKEN("E'",TEST_EP);
REGISTER_NONTERMINATE_TOKEN("T",TEST_T);
REGISTER_NONTERMINATE_TOKEN("T'",TEST_TP);
REGISTER_NONTERMINATE_TOKEN("F",TEST_F);


class CProduction_Test_S : public CProduction
{
public:
    PRODUCTION(TOKEN_START,
        TEST_E);

};
REGISTER_PRODUCTION_CLASS(CProduction_Test_S);


class CProduction_Test_E1 : public CProduction
{
public:
    PRODUCTION(TEST_E,
        TEST_T,TEST_EP);
};
REGISTER_PRODUCTION_CLASS(CProduction_Test_E1);

class CProduction_Test_EP1 : public CProduction
{
public:
    PRODUCTION(TEST_EP,
        TEST_PLUS,TEST_T,TEST_EP);
};
REGISTER_PRODUCTION_CLASS(CProduction_Test_EP1);

class CProduction_Test_EP2 : public CProduction
{
public:
    PRODUCTION(TEST_EP,
        TOKEN_EMPTY);
};
REGISTER_PRODUCTION_CLASS(CProduction_Test_EP2);


class CProduction_Test_T1 : public CProduction
{
public:
    PRODUCTION(TEST_T,
        TEST_F,TEST_TP);
};
REGISTER_PRODUCTION_CLASS(CProduction_Test_T1);


class CProduction_Test_TP1 : public CProduction
{
public:
    PRODUCTION(TEST_TP,
        TEST_MULT,TEST_F,TEST_TP);
};
REGISTER_PRODUCTION_CLASS(CProduction_Test_TP1);

class CProduction_Test_TP2 : public CProduction
{
public:
    PRODUCTION(TEST_TP,
        TOKEN_EMPTY);
};
REGISTER_PRODUCTION_CLASS(CProduction_Test_TP2);

class CProduction_Test_F1 : public CProduction
{
public:
    PRODUCTION(TEST_F,
        TEST_I);
};
REGISTER_PRODUCTION_CLASS(CProduction_Test_F1);

class CProduction_Test_F2 : public CProduction
{
public:
    PRODUCTION(TEST_F,
        TEST_LP,TEST_E,TEST_RP);
};
REGISTER_PRODUCTION_CLASS(CProduction_Test_F2);

#endif